import inspect
import os.path
import sys
from datetime import datetime


from selenium import webdriver
from selenium.webdriver.ie.service import Service
from webdriver_manager.microsoft import EdgeChromiumDriverManager


class Driver:
        driver=""
        def __init__(self):
            options=webdriver.EdgeOptions()
            self.driver=webdriver.Edge(service=Service(EdgeChromiumDriverManager().install()))
            #self.driver.implicitly_wait(3) 不用隐式了，不能处理弹窗
            print("驱动下载、创建完成")

        def getScreeShot(self):
            """
            该方法用于获取当前浏览器页面的屏幕截图，并将截图保存到指定的文件路径下
            """
            # 获取当前日期，格式化为 "YYYY-MM-DD"，用于作为截图保存的日期文件夹名称
            dirname = datetime.now().strftime("%Y-%m-%d")
            # 判断以日期命名的文件夹是否存在，如果不存在则创建该文件夹，用于按天分类保存截图
            if not os.path.exists("../images/" + dirname):
                os.makedirs("../images/" + dirname)
            # 获取调用当前方法的函数名称，与当前时间拼接作为截图文件名，便于区分不同测试场景下的截图
            filename = sys._getframe().f_back.f_code.co_name + "-" + datetime.now().strftime("%Y-%m-%d-%H%M%S") + ".png"
            try:
                # 尝试保存浏览器页面截图到指定的文件路径下
                self.driver.save_screenshot("../images/" + dirname + "/" + filename)
                print(f"截图保存成功，文件名：{filename}")
            except Exception as e:
                # 如果截图保存出现异常，打印错误提示信息
                print(f"截图保存失败，原因：{str(e)}")
WebChatDriver=Driver()